#ifndef __MCPOINT2D_H_
#define __MCPOINT2D_H_

#include <MCPlaneItem.h>
#include <MCMatrix3.h>

class MCPoint2D : public MCPlaneItem
{
public:

    MCPoint2D();
    MCPoint2D(double x_, double y_);

    MCPlaneItemType type() override;
    void setPositionAt(const MCPoint2D &at) override;
    void transform(const MCMatrix3 &transform) override;
    void scale(double scale) override;
    void move(const MCVector2 &to) override;
    double distanceTo(const MCPoint2D &to) const;

    MCPoint2D &operator=(const MCPoint2D &);
    MCPoint2D &operator=(const MCVector2 &);
    MCPoint2D operator+(const MCPoint2D &) const;
    MCPoint2D operator-(const MCPoint2D &) const;
    MCPoint2D operator+(const MCVector2 &) const;
    MCPoint2D operator-(const MCVector2 &) const;
    MCPoint2D operator*(double scalar) const;
    MCPoint2D operator/(double scalar) const;
    bool operator==(const MCPoint2D &) const;
    bool operator!=(const MCPoint2D &) const;

        
public:

    double x;
    double y;

};

#endif // !__MCPOINT2D_H_
